// const arr = ['yellow','yellow','green','green','pink','skyblue','blue']

// const result = arr.reduce((pre,cur,index,arr) => {
//   if(cur in pre){
//     pre[cur]++
//   }else {
//     pre[cur] = 1
//   }
//   return pre
// },{})
// console.log(result)

// const res = arr.reduce((pre,cur) => {
//   if(!pre.includes(cur)){
//     pre.push(cur)
//   }
//   return pre
// },[])

const  deepArr = [1,2,[3,4,[5,6,[7,8]]]]

function flatArr(arr) {
  return arr.reduce((pre,cur) => {
    if(Array.isArray(cur)) {
      return pre.concat(flatArr(cur))
    }else {
      return pre.concat(cur)
    }
  },[])
}
console.log(flatArr(deepArr))